/*
 * Copyright (c) 2023 vitasystems GmbH
 *
 * This file is part of project EHRbase Migration Tool
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.ehrbase.migration.exporter.v0.jooq.pg.tables.records;

import java.sql.Timestamp;
import java.util.UUID;
import org.ehrbase.migration.exporter.v0.jooq.pg.tables.CompExpand;
import org.jooq.JSONB;
import org.jooq.impl.TableRecordImpl;

/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({"all", "unchecked", "rawtypes"})
public class CompExpandRecord extends TableRecordImpl<CompExpandRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>ehr.comp_expand.ehr_id</code>.
     */
    public void setEhrId(UUID value) {
        set(0, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.ehr_id</code>.
     */
    public UUID getEhrId() {
        return (UUID) get(0);
    }

    /**
     * Setter for <code>ehr.comp_expand.subject_externalref_id_value</code>.
     */
    public void setSubjectExternalrefIdValue(String value) {
        set(1, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.subject_externalref_id_value</code>.
     */
    public String getSubjectExternalrefIdValue() {
        return (String) get(1);
    }

    /**
     * Setter for <code>ehr.comp_expand.subject_externalref_id_namespace</code>.
     */
    public void setSubjectExternalrefIdNamespace(String value) {
        set(2, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.subject_externalref_id_namespace</code>.
     */
    public String getSubjectExternalrefIdNamespace() {
        return (String) get(2);
    }

    /**
     * Setter for <code>ehr.comp_expand.composition_id</code>.
     */
    public void setCompositionId(UUID value) {
        set(3, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.composition_id</code>.
     */
    public UUID getCompositionId() {
        return (UUID) get(3);
    }

    /**
     * Setter for <code>ehr.comp_expand.template_id</code>.
     */
    public void setTemplateId(String value) {
        set(4, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.template_id</code>.
     */
    public String getTemplateId() {
        return (String) get(4);
    }

    /**
     * Setter for <code>ehr.comp_expand.archetype_id</code>.
     */
    public void setArchetypeId(String value) {
        set(5, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.archetype_id</code>.
     */
    public String getArchetypeId() {
        return (String) get(5);
    }

    /**
     * Setter for <code>ehr.comp_expand.entry</code>.
     */
    public void setEntry(JSONB value) {
        set(6, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.entry</code>.
     */
    public JSONB getEntry() {
        return (JSONB) get(6);
    }

    /**
     * Setter for <code>ehr.comp_expand.composition_name</code>.
     */
    public void setCompositionName(String value) {
        set(7, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.composition_name</code>.
     */
    public String getCompositionName() {
        return (String) get(7);
    }

    /**
     * Setter for <code>ehr.comp_expand.language</code>.
     */
    public void setLanguage(String value) {
        set(8, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.language</code>.
     */
    public String getLanguage() {
        return (String) get(8);
    }

    /**
     * Setter for <code>ehr.comp_expand.territory</code>.
     */
    public void setTerritory(Integer value) {
        set(9, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.territory</code>.
     */
    public Integer getTerritory() {
        return (Integer) get(9);
    }

    /**
     * Setter for <code>ehr.comp_expand.start_time</code>.
     */
    public void setStartTime(Timestamp value) {
        set(10, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.start_time</code>.
     */
    public Timestamp getStartTime() {
        return (Timestamp) get(10);
    }

    /**
     * Setter for <code>ehr.comp_expand.start_time_tzid</code>.
     */
    public void setStartTimeTzid(String value) {
        set(11, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.start_time_tzid</code>.
     */
    public String getStartTimeTzid() {
        return (String) get(11);
    }

    /**
     * Setter for <code>ehr.comp_expand.end_time</code>.
     */
    public void setEndTime(Timestamp value) {
        set(12, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.end_time</code>.
     */
    public Timestamp getEndTime() {
        return (Timestamp) get(12);
    }

    /**
     * Setter for <code>ehr.comp_expand.end_time_tzid</code>.
     */
    public void setEndTimeTzid(String value) {
        set(13, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.end_time_tzid</code>.
     */
    public String getEndTimeTzid() {
        return (String) get(13);
    }

    /**
     * Setter for <code>ehr.comp_expand.other_context</code>.
     */
    public void setOtherContext(JSONB value) {
        set(14, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.other_context</code>.
     */
    public JSONB getOtherContext() {
        return (JSONB) get(14);
    }

    /**
     * Setter for <code>ehr.comp_expand.ctx_location</code>.
     */
    public void setCtxLocation(String value) {
        set(15, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.ctx_location</code>.
     */
    public String getCtxLocation() {
        return (String) get(15);
    }

    /**
     * Setter for <code>ehr.comp_expand.facility_name</code>.
     */
    public void setFacilityName(String value) {
        set(16, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.facility_name</code>.
     */
    public String getFacilityName() {
        return (String) get(16);
    }

    /**
     * Setter for <code>ehr.comp_expand.facility_ref</code>.
     */
    public void setFacilityRef(String value) {
        set(17, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.facility_ref</code>.
     */
    public String getFacilityRef() {
        return (String) get(17);
    }

    /**
     * Setter for <code>ehr.comp_expand.facility_scheme</code>.
     */
    public void setFacilityScheme(String value) {
        set(18, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.facility_scheme</code>.
     */
    public String getFacilityScheme() {
        return (String) get(18);
    }

    /**
     * Setter for <code>ehr.comp_expand.facility_namespace</code>.
     */
    public void setFacilityNamespace(String value) {
        set(19, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.facility_namespace</code>.
     */
    public String getFacilityNamespace() {
        return (String) get(19);
    }

    /**
     * Setter for <code>ehr.comp_expand.facility_type</code>.
     */
    public void setFacilityType(String value) {
        set(20, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.facility_type</code>.
     */
    public String getFacilityType() {
        return (String) get(20);
    }

    /**
     * Setter for <code>ehr.comp_expand.composer_name</code>.
     */
    public void setComposerName(String value) {
        set(21, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.composer_name</code>.
     */
    public String getComposerName() {
        return (String) get(21);
    }

    /**
     * Setter for <code>ehr.comp_expand.composer_ref</code>.
     */
    public void setComposerRef(String value) {
        set(22, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.composer_ref</code>.
     */
    public String getComposerRef() {
        return (String) get(22);
    }

    /**
     * Setter for <code>ehr.comp_expand.composer_scheme</code>.
     */
    public void setComposerScheme(String value) {
        set(23, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.composer_scheme</code>.
     */
    public String getComposerScheme() {
        return (String) get(23);
    }

    /**
     * Setter for <code>ehr.comp_expand.composer_namespace</code>.
     */
    public void setComposerNamespace(String value) {
        set(24, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.composer_namespace</code>.
     */
    public String getComposerNamespace() {
        return (String) get(24);
    }

    /**
     * Setter for <code>ehr.comp_expand.composer_type</code>.
     */
    public void setComposerType(String value) {
        set(25, value);
    }

    /**
     * Getter for <code>ehr.comp_expand.composer_type</code>.
     */
    public String getComposerType() {
        return (String) get(25);
    }

    // -------------------------------------------------------------------------
    // Constructors
    // -------------------------------------------------------------------------

    /**
     * Create a detached CompExpandRecord
     */
    public CompExpandRecord() {
        super(CompExpand.COMP_EXPAND);
    }

    /**
     * Create a detached, initialised CompExpandRecord
     */
    public CompExpandRecord(
            UUID ehrId,
            String subjectExternalrefIdValue,
            String subjectExternalrefIdNamespace,
            UUID compositionId,
            String templateId,
            String archetypeId,
            JSONB entry,
            String compositionName,
            String language,
            Integer territory,
            Timestamp startTime,
            String startTimeTzid,
            Timestamp endTime,
            String endTimeTzid,
            JSONB otherContext,
            String ctxLocation,
            String facilityName,
            String facilityRef,
            String facilityScheme,
            String facilityNamespace,
            String facilityType,
            String composerName,
            String composerRef,
            String composerScheme,
            String composerNamespace,
            String composerType) {
        super(CompExpand.COMP_EXPAND);

        setEhrId(ehrId);
        setSubjectExternalrefIdValue(subjectExternalrefIdValue);
        setSubjectExternalrefIdNamespace(subjectExternalrefIdNamespace);
        setCompositionId(compositionId);
        setTemplateId(templateId);
        setArchetypeId(archetypeId);
        setEntry(entry);
        setCompositionName(compositionName);
        setLanguage(language);
        setTerritory(territory);
        setStartTime(startTime);
        setStartTimeTzid(startTimeTzid);
        setEndTime(endTime);
        setEndTimeTzid(endTimeTzid);
        setOtherContext(otherContext);
        setCtxLocation(ctxLocation);
        setFacilityName(facilityName);
        setFacilityRef(facilityRef);
        setFacilityScheme(facilityScheme);
        setFacilityNamespace(facilityNamespace);
        setFacilityType(facilityType);
        setComposerName(composerName);
        setComposerRef(composerRef);
        setComposerScheme(composerScheme);
        setComposerNamespace(composerNamespace);
        setComposerType(composerType);
        resetChangedOnNotNull();
    }
}
